//------------------------------------------------------------------------------
// <copyright company="Telligent Systems">
//     Copyright (c) Telligent Systems Corporation.  All rights reserved.
// </copyright> 
//------------------------------------------------------------------------------

using System.Collections;
using System.Xml;
using CommunityServer.Components;

namespace CommunityServer.Blogs.Components
{
	public class PostandArticleTokens : ICSModule
	{
		#region ICSModule Members

		public void Init(CSApplication csa, XmlNode node)
		{
			csa.PreProcessPost +=new CSPostEventHandler(csa_PreProcessPost);
		}

		#endregion

		private void csa_PreProcessPost(IContent content, CSPostEventArgs e)
		{
			if(e.ApplicationType == ApplicationType.Weblog)
			{
				WeblogPost wp = content as WeblogPost;
				if(wp != null)
				{
					if((wp.BlogPostType == BlogPostType.Post || wp.BlogPostType == BlogPostType.Article) && e.State != ObjectState.Delete)
					{
						ArrayList tokens = TextTokens.GetTokens(wp.SectionID);
						if(tokens != null && tokens.Count > 0)						
						{
							wp.FormattedBody = WalkTokens(tokens,wp.FormattedBody);
							wp.Excerpt = WalkTokens(tokens, wp.Excerpt);
						}
					}
				}
			}
		}

		private string WalkTokens(ArrayList tokens, string text)
		{
			if(Globals.IsNullorEmpty(text))
				return text;

			foreach(TextToken token in tokens)
			{
				text = token.FormatText(text);
			}

			return text;
		}

	}
}